1 /*
2 * Copyright (C) 2009 The Guava Authors
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 * in compliance with the License. You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software distributed under the
10 * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
11 * express or implied. See the License for the specific language governing permissions and
12 * limitations under the License.
13 */
14
15 package com.google.common.collect;
16
17 import com.google.common.annotations.GwtCompatible;
18
19 import java.util.Comparator;
20
21 /**
22 * List returned by {@code ImmutableSortedSet.asList()} when the set isn't empty.
23 *
24 * @author Jared Levy
25 * @author Louis Wasserman
26 */
27 @GwtCompatible(emulated = true)
28 @SuppressWarnings("serial")
29 final class ImmutableSortedAsList<E> extends RegularImmutableAsList<E>
30 implements SortedIterable<E> {
31 ImmutableSortedAsList(
32 ImmutableSortedSet<E> backingSet, ImmutableList<E> backingList) {
33 super(backingSet, backingList);
34 }
35
36 @Override
37 ImmutableSortedSet<E> delegateCollection() {
38 return (ImmutableSortedSet<E>) super.delegateCollection();
39 }
40
41 @Override public Comparator<? super E> comparator() {
42 return delegateCollection().comparator();
43 }
44
45 // Override indexOf() and lastIndexOf() to be O(log N) instead of O(N).
46
47 @Override
48 public boolean contains(Object target) {
49 // Necessary for ISS's with comparators inconsistent with equals.
50 return indexOf(target) >= 0;
51 }
52 }
53